#ifndef PROGRAM_DATASTRUCT_SET_H_
#define PROGRAM_DATASTRUCT_SET_H_

#include "doublelist.h"

namespace setex{

class Set
{
public:
    Set* SetUnion(Set* s);
    Set* SetIntersection(Set* s);
    Set* SetDifference(Set* s);
    void SetInsert(int d);
    void SetRemove(int d);
    bool IsSetMember(int d);
    bool IsSetEqual(Set* s);
    bool IsSetSubset(Set* s);
    int GetSetSize();

    doublelist::DoubleList* GetData();
private:
    doublelist::DoubleList m_data;
};

void PrintSet(Set* s);
}

#endif // PROGRAM_DATASTRUCT_SET_H_
